import { ACCESS_NUM } from "./accessNum";

/**
 * 检查权限函数
 * @param loginUser 当前登录用户
 * @param needAccess 需要有的权限
 * @return 有无权限
 */

const checkAccess = (loginUser:API.LoginUserVO, needAccess:string = ACCESS_NUM.NOT_LOGIN) => {
  // 获取当前登录用户具有的权限(如果没有loginUser，则默认为未登录)
  const loginUserAccess = loginUser.userRole ?? ACCESS_NUM.NOT_LOGIN;

  if(needAccess === ACCESS_NUM.NOT_LOGIN) {
    return true
  }

  // 如果用户需要登录才能访问
  if(needAccess === ACCESS_NUM.USER) {
    // 如果用户未登录,那么表示无权限
    if(loginUserAccess === ACCESS_NUM.NOT_LOGIN) {
      return false
    }
  }

  // 如果管理员才能访问
  if(needAccess === ACCESS_NUM.ADMIN) {
    // 如果不是管理员,表示无权限
    if(loginUserAccess !== ACCESS_NUM.ADMIN) {
      return false
    }
  }
  return true
}

export default checkAccess